package com.example.myletcodelearing.one

import java.lang.StringBuilder
import java.util.*
import kotlin.collections.ArrayList
import kotlin.collections.HashMap
import kotlin.math.abs


/**
 * @author tgw
 * @date 2022/11/7
 * https://leetcode.cn/problems/container-with-most-water/
 *给定一个长度为 n 的整数数组 height 。有 n 条垂线，第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

 */

fun main(args: Array<String>) {
    var op = Solution21.Solution()
    var num = arrayOf(1,8,6,2,5,4,8,3,7)
    var result = op.maxArea(num)


    print("打印：$result")


}

private class Solution21 {
    internal class Solution {
        fun maxArea(num: Array<Int>): Int {
             if (num.size<1){
                 return 0
             }
            var left = 0
            var right = num.size-1
            var max = 0
            while (left<right){
                if (num[left]<num[right]){
                    max = Math.max(max,num[left] * (right-left) )
                    left++
                }else{
                    max = Math.max(max,num[right] * (right-left) )
                    right--
                }
            }

            return max
        }



    }

}
